/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
import java.util.ArrayList;

/*
 *
 * @author martin
 */
public class Tecla {
    int numero;
    public Tecla (int numero) {
        this.numero = numero;
    }
    public int getTecla() {
        return(this.numero);
    }
    
}

interface Observador {
        public void update(Tecla tecleo);
}

interface Subject {
    public void suscribirse (Observador suscriptor);
    public void dessucribirse (Observador suscriptor);
    public void enviarTecla(Tecla tecleo);
}
class Empresa implements Subject {
    private static ArrayList<Observador> archiSuscrip = new ArrayList<>();//puede ser array list
     
    @Override
    public void suscribirse(Observador suscriptor) {
        archiSuscrip.add(suscriptor);
    }
    @Override
    public void dessucribirse(Observador suscriptor) {
        archiSuscrip.remove(suscriptor);
    }
    @Override
    public void enviarTecla (Tecla tecleo) {
        for (int i=0; i<archiSuscrip.size();i++) {
            archiSuscrip.get(i).update(tecleo);
       }
    }
}

class Suscriptor implements Observador {
    String nombre;
    public Suscriptor (String nombre) {
        this.nombre = nombre;
    }

@Override
    public void update(Tecla tecleo) {
        System.out.println("recibio la tecla"+tecleo.getTecla()+";"
        +this.nombre);
    }
}




       
       
       
       
       
       
       
               
               
               
               
               
               
   
    
    
    
    
    
    
    
    
    
    


                
                


